/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package pers.sakurasora.lesson.web;

import java.io.File;
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.servlet.http.HttpServletRequest;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.multipart.MultipartFile;
/*----------------------------------------------------------------------------------------------------------------------------------------------------------
 *             在一般情况下，控制器方法返回的字符串都会被当做逻辑视图名来处理。                                                                            *
 *             但是当字符串带有“forward”或者“redirect”前缀时，则对他们进行特殊处理。把“forward”与“redirect”当成指示符，其后的字符串作为URL来处理。 *
 *             redirect：会让浏览器发起一个新的请求。                                                                                                      *
 *             forward：与当前请求同属一个                                                                                                                 *
-----------------------------------------------------------------------------------------------------------------------------------------------------------*/

/**
 * @author SakuraSora
 * @Email 1468071675@qq.com
 * @DateTime 2018-11-15 16:36:31
 *
 * @Description
 *              控制层--文件上传
 */
@Controller
public class FileUploadController {

    @RequestMapping("/fileUpload")
    public String fileUpload(MultipartFile file,HttpServletRequest request) { /*传文件，自动组装，要用到MultipartFile； MultipartFile实例对象与表单中<input type="file" name="file"/> 的name属性值对应*/
        //获取文件名后缀
            //file.getOriginalFilename()：获取源文件名
        String subfix = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf("."));
        File toFile = new File(request.getServletContext().getRealPath("/temp") + "/" + System.currentTimeMillis() + subfix); /*System.currentTimeMillis():当前时间戳*/
        try {//System.out.println("tofile:"+toFile.getPath());
            //把文件放到新路径中
            file.transferTo(toFile); 
        } catch (IOException ex) {
            Logger.getLogger(FileUploadController.class.getName()).log(Level.SEVERE, null, ex);
        } catch (IllegalStateException ex) {
            Logger.getLogger(FileUploadController.class.getName()).log(Level.SEVERE, null, ex);
        }
        return "main";
    }
}
